home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / +look_here_1st!+ / handy_tools / diskmasterii / rexx / fileshow.rexx < prev    next >
OS/2 REXX Batch file  |  1997-07-31  |  9KB  |  315 lines

  1. /* $VER: FileID Show v3.1 (24.08.96) (c) Inorix scripts
  2. **
  3. ** A File_ID.diz extractor for DiskMaster II
  4. ** Written by JAVE (Jan-willem van Eys)
  5. **
  6. ** Inspired by: FileID_DIZ READER V 2.0 ® TGI-SOFT 1994
  7. ** (A badly coded File_ID.diz display script for DOpus v4.12 :-))
  8. **
  9. */
  10.  
  11. OPTIONS RESULTS
  12. OPTIONS FAILAT 21
  13.  
  14. /*************************************/
  15. /* Specify an alternative device to  */
  16. /* unDMS to.                         */
  17. /*************************************/
  18.  
  19. ODev='FF0:'
  20.  
  21. /*************************************/
  22. /* Get the portname                  */
  23. /*************************************/
  24.  
  25. Port=ADDRESS()
  26.  
  27. /*************************************/
  28. /* Add RexxReqTools library          */
  29. /* and Rexxtricks library            */
  30. /*************************************/
  31.  
  32. IF ~SHOW('L','rexxsupport.library') THEN DO
  33.   ADDLIB('rexxsupport.library',0,-30)
  34. END
  35. IF ~SHOW('L','rexxreqtools.library') THEN DO
  36.   ADDLIB('rexxreqtools.library',0,-30)
  37. END
  38. IF ~SHOW('L','rexxtricks.library') THEN DO
  39.   ADDLIB('rexxtricks.library',0,-30)
  40. END
  41.  
  42. /*************************************/
  43. /* Get the selected file             */
  44. /*************************************/
  45.  
  46. PARSE ARG DMSource DestPath .
  47.  
  48. /*************************************/
  49. /* Split the Source in Filename and  */
  50. /* Path vars.                        */
  51. /*************************************/
  52.  
  53. DMFile=FILEPART(DMSource)
  54. DMPath=PATHPART(DMSource)
  55.  
  56. /*************************************/
  57. /* If there's no destination dir     */
  58. /* selected, set it to the source.   */
  59. /* (and add a '/' if it's not there) */
  60. /*************************************/
  61.  
  62. IF DestPath="" THEN DestPath=DMPath
  63. IF ~(RIGHT(DestPath,1)=':') THEN DestPath=DestPath'/'
  64.  
  65. /*************************************/
  66. /* Set some vars                     */
  67. /*************************************/
  68.  
  69. Title='FileID Show v3.1 (24.08.96)'
  70. NL='0a'x
  71. QT='"'
  72. Tag="rt_reqpos=reqpos_centerscr rt_pubscrname="||port
  73. Gadgets='_Action|_Delete|_Quit'
  74.  
  75. /*************************************/
  76. /* Check if DiskMaster is the caller */
  77. /* Exit otherwise                    */
  78. /*************************************/
  79.  
  80. IF ~(LEFT(Port,2)='DM') THEN DO
  81.   SAY
  82.   SAY 'This script will only run from within DiskMaster II!'
  83.   SAY
  84.   EXIT 10
  85. END
  86.  
  87. /*************************************/
  88. /* Determine the archive type by     */
  89. /* calling my file recognition       */
  90. /* subroutine                        */
  91. /*************************************/
  92.  
  93. CALL Sub_FileRecog.REXX(DMSource)
  94. Filetype=GETCLIP(FR_T)
  95. Archtype=GETCLIP(FR_S)
  96.  
  97. IF ~(Archtype='GUIDE'|Archtype='GIF'|Archtype='EXE') THEN DO
  98.   IF RIGHT(Filetype,7)~='Archive' THEN DO
  99.     Archtype='???'
  100.   END
  101. END
  102.  
  103. /*************************************/
  104. /* Make a var containing the source  */
  105. /* filename surrounded by "'s        */
  106. /*************************************/
  107.  
  108. SelectedFile=QT||DMSource||QT
  109.  
  110. /*************************************/
  111. /* Delete possible old File_ID.diz   */
  112. /* and extract the File_ID.diz from  */
  113. /* the sourcefile                    */
  114. /*************************************/
  115.  
  116. IF EXISTS('T:FILE_ID.DIZ') THEN 'DELETE T:File_ID.diz'
  117.  
  118. SELECT
  119.   WHEN ArchType='DMS' THEN DO
  120.     'Extern dmsdescript >NIL: x T:FILE_ID.diz '||SelectedFile
  121.   END
  122.   WHEN (ArchType='LHA'|ArchType='LZH') THEN DO
  123.     'Extern lha x >NIL: '||SelectedFile||' FILE_ID.DIZ T:'
  124.   END
  125.   WHEN ArchType='LZX' THEN DO
  126.     'Extern lzx x >NIL: '||SelectedFile||' FILE_ID.DIZ T:'
  127.   END
  128.   WHEN ArchType='GUIDE' THEN DO
  129.     'Extern TxtExtract e >NIL: T:FILE_ID.DIZ '||SelectedFile
  130.   END
  131.   WHEN ArchType='EXE' THEN DO
  132.     ADDRESS command 'EXEDescript x >NIL: T:FILE_ID.DIZ '||SelectedFile
  133.   END
  134.   WHEN ArchType='ZIP' THEN DO
  135.     olddirectory=PRAGMA('D','T:')
  136.     ADDRESS COMMAND 'Unzip >NIL: '||SelectedFile||'FILE_ID.DIZ '
  137.     PRAGMA('D',olddirectory)
  138.   END
  139.   WHEN ArchType='GIF' THEN DO
  140.     olddirectory=PRAGMA('D','T:')
  141.     ADDRESS COMMAND 'Gifdesc e >NIL: '||SelectedFile||'FILE_ID.DIZ '
  142.     PRAGMA('D',olddirectory)
  143.   END
  144.   OTHERWISE DO
  145.     SAY 'Unknown Archive format!'
  146.     EXIT
  147.   END
  148. END
  149.  
  150. /*************************************/
  151. /* If no FileID was found, say so in */
  152. /* the displaytext                   */
  153. /*************************************/
  154.  
  155. Showtext=""
  156. IF ~EXISTS('T:FILE_ID.DIZ') THEN DO
  157.   Showtext='No File_ID.diz found!'
  158. END
  159.  
  160. /*************************************/
  161. /* Fill the displaytext with the     */
  162. /* FileID                            */
  163. /*************************************/
  164.  
  165. ELSE DO
  166.   CALL OPEN('FileID','T:FILE_ID.diz','r')
  167.   DO UNTIL EOF('FileID')
  168.     Showtext=Showtext||NL||READLN('FileID')
  169.   END
  170.   CALL CLOSE('FileID')
  171.   Showtext=STRIP(Showtext,'B',NL)
  172. END
  173.  
  174. /*************************************/
  175. /* Ask user for response             */
  176. /*************************************/
  177.  
  178. actieresult=rtezrequest(Showtext,Gadgets,Title,Tag,)
  179. SELECT
  180.   WHEN actieresult=1&Archtype="DMS" THEN CALL DMS
  181.   WHEN actieresult=1&Archtype="LHA" THEN CALL LHA
  182.   WHEN actieresult=1&Archtype="LZX" THEN CALL LZX
  183.   WHEN actieresult=1&Archtype="ZIP" THEN CALL ZIP
  184.   WHEN actieresult=1 THEN CALL Other
  185.   WHEN actieresult=2 THEN CALL Deleting
  186.   OTHERWISE EXIT
  187. END
  188.  
  189. EXIT
  190.  
  191. /*********************************************************
  192.  * Delete file subroutine
  193.  *********************************************************/
  194.  
  195. Deleting:
  196.   deletetext="Are you SURE you want to delete"||NL||DMFile"?"
  197.   Gadgets="_Delete|_Quit"
  198.   delresult=rtezrequest(deletetext,Gadgets,Title,Tag,)
  199.   IF delresult=1 THEN 'DELETE 'DMSource
  200. RETURN
  201.  
  202. /*********************************************************
  203.  * DMS Subroutine
  204.  *********************************************************/
  205.  
  206. DMS:
  207.   dmstext="Where do you want to unDMS"||NL||DMFile" to?"
  208.   Gadgets="DF_0:|DF_1:|_"ODev"|_Quit"
  209.   dmsresult=rtezrequest(dmstext,Gadgets,Title,Tag,)
  210.   IF dmsresult=1 THEN DO
  211.     'StdIO "CON:108/42/424/180/Extract Window/Close/Smart/Plain/Nogads/Screen"||port'
  212.     'Extern C:DMS <* WRITE 'SelectedFile' TO DF0: NOTEXT NOVERIFY NOPAUSE'
  213.     'Wait'
  214.     'StdIO CLOSE'
  215.   END
  216.   IF dmsresult=2 THEN DO
  217.     'StdIO "CON:108/42/424/180/Extract Window/Close/Smart/Plain/Nogads/Screen"||port'
  218.     'Extern C:DMS <* WRITE 'SelectedFile' TO DF1: NOTEXT NOVERIFY NOPAUSE'
  219.     'Wait'
  220.     'StdIO CLOSE'
  221.   END
  222.   IF dmsresult=3 THEN DO
  223.     'StdIO "CON:108/42/424/180/Extract Window/Close/Smart/Plain/Nogads/Screen"||port'
  224.     'Extern C:DMS <* WRITE 'SelectedFile' TO 'ODev' NOTEXT NOPAUSE'
  225.     'Wait'
  226.     'StdIO CLOSE'
  227.   END
  228.   IF RC ~=0 THEN DO
  229.     SAY "DMS ERROR  -> "||RESULT
  230.   END
  231. RETURN
  232.  
  233. /*********************************************************
  234.  * LhA Subroutine
  235.  *********************************************************/
  236.  
  237. LHA:
  238.   lhatext="Extract "DMFile" to?"
  239.   Gadgets="_Destination|_RAM|_Quit"
  240.   lharesult=rtezrequest(lhatext,Gadgets,Title,Tag,)
  241.   IF lharesult=1 THEN DO
  242.     'StdIO "CON:0/11/640/253/Extract Window/Close/Smart/Plain/Nogads/Screen"||port'
  243.     'Extern C:LhA <* x 'SelectedFile' -M 'DestPath
  244.     'StdIO CLOSE'
  245.   END
  246.   IF lharesult=2 THEN DO
  247.     'StdIO "CON:0/11/640/253/Extract Window/Close/Smart/Plain/Nogads/Screen"||port'
  248.     'Extern C:LhA <* x 'SelectedFile' -M RAM:'
  249.     'StdIO CLOSE'
  250.   END
  251. RETURN
  252.  
  253. /*********************************************************
  254.  * LZX SubRoutine
  255.  *********************************************************/
  256.  
  257. LZX:
  258.   lzxtext="Extract "DMFile" to?"
  259.   Gadgets="_Destination|_RAM|_Quit"
  260.   lzxresult=rtezrequest(lzxtext,Gadgets,Title,Tag,)
  261.   IF lzxresult=1 THEN DO
  262.     'StdIO "CON:0/11/640/253/Extract Window/Close/Smart/Plain/Nogads/Screen"||port'
  263.     'Extern C:LZX <* x 'SelectedFile' 'DestPath
  264.     'StdIO CLOSE'
  265.   END
  266.   IF lzxresult=2 THEN DO
  267.     'StdIO "CON:0/11/640/253/Extract Window/Close/Smart/Plain/Nogads/Screen"||port'
  268.     'Extern C:LZX <* x 'SelectedFile' RAM:'
  269.     'StdIO CLOSE'
  270.   END
  271. RETURN
  272.  
  273. /*********************************************************
  274.  * Zip SubRoutine
  275.  *********************************************************/
  276.  
  277. ZIP:
  278.   ziptext="Extract "DMFile"?"
  279.   Gadgets="_Destination|_RAM|_Quit"
  280.   zipresult=rtezrequest(ziptext,Gadgets,Title,Tag,)
  281.   IF zipresult=1 THEN DO
  282.     'StdIO "CON:0/11/640/253/Extract Window/Close/Smart/Plain/Nogads/Screen"||port'
  283.     'Extern CD %d \C:UnZip <* 'SelectedFile
  284.     'StdIO CLOSE'
  285.   END
  286.   IF zipresult=2 THEN DO
  287.     'StdIO "CON:0/11/640/253/Extract Window/Close/Smart/Plain/Nogads/Screen"||port'
  288.     'Extern CD RAM: \C:UnZip <* 'SelectedFile
  289.     'StdIO CLOSE'
  290.   END
  291. RETURN
  292.  
  293. /*********************************************************
  294.  * Unknown archive Subroutine
  295.  *********************************************************/
  296.  
  297. /*************************************/
  298. /* In case of unknown archive, (it's */
  299. /* probably a GIF picture or  some   */
  300. /* docfile) use the                  */
  301. /* AutoCmd description associated    */
  302. /* with the File (or the DEFAULT one */
  303. /* if unknown...)                    */
  304. /*************************************/
  305.  
  306. Other:
  307.   othertext=DMFile
  308.   Gadgets="_View|_Quit"
  309.   othresult=rtezrequest(othertext,Gadgets,Title,Tag,)
  310.   IF othresult=1 THEN DO
  311.     'auto 'DMSource
  312.     EXIT
  313.   END
  314. RETURN
  315.